f x = x + sqrt 4
can be expressed as
f x = let t = sqrt 4 in x + t
but note that t does not depend on the argument x so we can
automatically transform this to
t = sqrt 4
f x = x + t
Making t into a global constant which need only be evaluated
at most once, rather than every time f is called. The general
idea is to float each subexpression as far out (toward the
top level) as possible to maximise sharing.
(1997-07-09)